#ifndef SPLINTER_MYKRONECKERPRODUCT_H
#define SPLINTER_MYKRONECKERPRODUCT_H

#include "definitions.h"

namespace SPLINTER
{

SparseMatrix myKroneckerProduct(const SparseMatrix &A, const SparseMatrix &B);

// Apply Kronecker product on several vectors or matrices
SparseVector kroneckerProductVectors(const std::vector<SparseVector> &vectors);
DenseVector kroneckerProductVectors(const std::vector<DenseVector> &vectors);
SparseMatrix kroneckerProductMatrices(const std::vector<SparseMatrix> &matrices);

} // namespace SPLINTER

#endif // SPLINTER_MYKRONECKERPRODUCT_H
